perm filename BOZIO.LIN[WHT,LSP] blob sn#746800 filedate 1984-05-12 generic text, type T, neo UTF8
@Marker(Library, Bolio, Press, Dover)

@Libraryfile(DBolio)

@Comment{Constraints on the definition of IndexEnvironment:
	Indent = - LeftMargin
	(Linewidth + Leftmargin + Columnmargin) * Columns - Columnmargin
		 = global line width
⎇
@Define(IndexEnvironment, Boxed, Columns 2, Columnmargin 0.5in,
        Linewidth 2.5in, Leftmargin +0.5in, Indent -0.5in)


@Define(KeySpreadEnvironment, Facecode F)
@Textform(SpreadKeys = "@KeySpreadEnvironment<@SpreadKeysLoop@Parm(Text)[]>")
@Textform(SpreadKeysLoop =
	"@String(SpreadKeysTemp = @Parmquote(Text))@Case(SpreadKeysTemp,
	     null <>, else < :@Parm(Text)@SpreadKeysLoop>)")

@Form(IndexKeys = "@Textform(IndexKeysLoop =
	'@String(IndexKeysTemp = @Quote{@Parmquote(Text)⎇)@Case(IndexKeysTemp,
	    null <>, else [@Kindex2(P = @Quote{@Parmquote(Text)⎇,
				    S = {for@f( @Parm(Fun))⎇)@IndexKeysLoop])')@IndexKeysLoop@Parm(Keys)[]@}")

@Counter(UnNumberedIndex,TitleEnv HD1A,ContentsEnv tc1,Announced,Alias Chapter)

@Textform(IndexHeadings = "@UnnumberedIndex@Parmquote(Text)
@String(ChapterTitle = @Parmquote(Text))
@Pageheading(Immediate, Left = <>, Right = <>)
@Pagefooting(Immediate, Center = <@minussign @Value(Page) @minussign>)
@Pageheading(Odd, Left = <@c[@Value(ChapterTitle)]>, Right = <@Value(Page)>)
@Pageheading(Even, Left = <@Value(Page)>, Right = <@c[@Value(ReportTitle)]>)
@Pagefooting(Center = <>)
")

@Textform(Incompatibility = "@Begin(Quotation, Font Smallbodyfont, Indent +0, Spread 0.5, need 4)
	@b[Compatibility note:] @Index(@b[Compatibility note])
	@Parm(Text) @End(Quotation)")
@Textform(Implementation = "@Begin(Quotation, Font Smallbodyfont, Indent +0, Spread 0.5, need 4)
	@b[Implementation note:] @Index(@b[Implementation note])
	@Parm(Text) @End(Quotation)")
@Textform(Rationale = "@Begin(Quotation, Font Smallbodyfont, Indent +0, Spread 0.5, need 4)
	@b[Rationale:] @Index(@b[Rationale]) @Parm(Text) @End(Quotation)")
@Textform(Query = "@Begin(Quotation, Font Smallbodyfont, Indent +0, Spread 0.5, need 4)
	@t[???] @b[Query:] @Index(@b[Query]) @Parm(Text) @End(Quotation)")

@Textform(Kwd = "@f[:@Parm(Text)]")
@Textform(KeywordList = "
	@Begin(Description)
	@Textform(Keyword = '@Begin(Multiple)@}
@f[:@Quote<@Parm(Text)>  ]@\@Kindex2(P = @Quote<@Parmquote(Text)>,
			   S = {for@f[ @Parm(Text)]⎇)@}
		@Label{@Parm(Text)-@Quote<@Parm(Text)>-kwd⎇@}')
	@Textform(FirstKeyword = '@Begin(Multiple)@}
@f[:@Quote<@Parm(Text)> @r[or] ]@Kindex2(P = @Quote<@Parmquote(Text)>,
			   S = {for@f[ @Parm(Text)]⎇)@}
		@Label{@Parm(Text)-@Quote<@Parm(Text)>-kwd⎇@}')
	@Textform(NextKeyword = '@}
@f[:@Quote<@Parm(Text)> @r[or] ]@Kindex2(P = @Quote<@Parmquote(Text)>,
			   S = {for@f[ @Parm(Text)]⎇)@}
		@Label{@Parm(Text)-@Quote<@Parm(Text)>-kwd⎇@}')
	@Textform(LastKeyword = '@}
@f[:@Quote<@Parm(Text)>  ]@\@Kindex2(P = @Quote<@Parmquote(Text)>,
			   S = {for@f[ @Parm(Text)]⎇)@}
		@Label{@Parm(Text)-@Quote<@Parm(Text)>-kwd⎇@}')
	@Textform(SubKeywordList = '
		@Begin(Description)
		@Textform(SubKeyword = <@Begin(Multiple)@}
@f[:@Quote{@Quote[@Parm(Text)]⎇  ]@\@Kindex2(P = @Quote{@Quote[@Parmquote(Text)]⎇,
			   S = {for@f[ @Quote[@Parm(Text)] ]option @}
				to@f[ @Parm(Text)]⎇)@}
		@Label{@Parm(Text)-@Quote[@Parm(Text)]-@Quote{@Quote[@Parm(Text)]⎇-kwd⎇@}>)')
")
@Textform(PseudoKeyword = "@Begin(Multiple)@Parm(Text)   @\@}")
@Commandstring(Endkeyword = "@End(Multiple)")
@Commandstring(Endkeywordlist = "@End(Description)")
@Textform(PseudoSubKeyword = "@Begin(Multiple)@Parm(Text)   @\@}")
@Commandstring(EndSubKeyword = "@End(Multiple)")
@Commandstring(EndSubKeywordlist = "@End(Description)")
@Textform(RandomKeywordList = "
	@Begin(Description)
	@Index2(P = {Keywords⎇, S = {for@f[ ]@Parm(Text)⎇)
	@Textform(RandomKeyword = '@Begin(Multiple)
@f[:@Quote<@Parm(Text)>  ]@\@Kindex2(P = @Quote<@Parmquote(Text)>,
				     S = {for@f[ ]@Parm(Text)⎇)@}')
")
@Textform(PseudoRandomKeyword = "@Begin(Multiple)@Parm(Text)   @\@}")
@Commandstring(Endrandomkeyword = "@End(Multiple)")
@Commandstring(Endrandomkeywordlist = "@End(Description)")

@Form(Defvar = "@Begin(Defenvironment)@Comment(Tabset?)@}
   @t[@Imbed(Nostar, undef '*')@Parm(Var)@Imbed(Nostar, undef '*')] @>[@i[Variable]]@\@}
   @Send(FunList {@t[@Imbed(Nostar, undef '*')@Parm(Var)@Imbed(Nostar, undef '*')] @>[@i[Variable]]@\⎇)@}
   @Imbed(Nostar, undef<@Vindex@Parmquote(Var)>, def<@Vxindex@Parmquote(Var)>)@}
   @Imbed(Nolabel, undef '@Imbed(Varlabel,
			          def <@Label{@Parm(Varlabel)-var⎇>,
			          undef <@Label{@Parm(Var)-var⎇>)')
   @Begin(Defbody)@Tabclear ")
@Form(Defvar1 = "@Begin(Undefbody)@Comment(Tabset?)@}
   @t[@Imbed(Nostar, undef '*')@Parm(Var)@Imbed(Nostar, undef '*')] @>[@i[Variable]]@\@}
   @Send(FunList {@t[@Imbed(Nostar, undef '*')@Parm(Var)@Imbed(Nostar, undef '*')] @>[@i[Variable]]@\⎇)@}
   @Imbed(Nostar, undef<@Vindex@Parmquote(Var)>, def<@Vxindex@Parmquote(Var)>)@}
   @Imbed(Nolabel, undef '@Imbed(Varlabel,
			          def <@Label{@Parm(Varlabel)-var⎇>,
			          undef <@Label{@Parm(Var)-var⎇>)')
   @End(Undefbody)")
@Commandstring(Enddefvar = "@End(Defbody)@End(Defenvironment)")
@Form(Defcon = "@Begin(Defenvironment)@Comment(Tabset?)@}
   @t[@Parm(Var)] @>[@i[Constant]]@\@}
   @Send(FunList {@t[@Parm(Var)] @>[@i[Constant]]@\⎇)@}
   @Conindex@Parmquote(Var)@}
   @Imbed(Nolabel, undef '@Imbed(Varlabel,
			          def <@Label{@Parm(Varlabel)-con⎇>,
			          undef <@Label{@Parm(Var)-con⎇>)')
   @Begin(Defbody)@Tabclear ")
@Form(Defcon1 = "@Begin(Undefbody)@Comment(Tabset?)@}
   @t[@Parm(Var)] @>[@i[Constant]]@\@}
   @Send(FunList {@t[@Parm(Var)] @>[@i[Constant]]@\⎇)@}
   @Conindex@Parmquote(Var)@}
   @Imbed(Nolabel, undef '@Imbed(Varlabel,
			          def <@Label{@Parm(Varlabel)-con⎇>,
			          undef <@Label{@Parm(Var)-con⎇>)')
   @End(Undefbody)")
@Commandstring(Enddefcon = "@End(Defbody)@End(Defenvironment)")
@Form(Defun = "@Begin(Defenvironment)@Comment(Tabset?)@}
   @t[@Parm(Fun) @Parm(Args, default <>)@Imbed(Keys, def < @key@!@Spreadkeys(@Parm(Keys))>)] @>[@i[Function]]@\
@Imbed(MoreKeys, def <@/@Spreadkeys(@Parm(MoreKeys))
>)@}
@Imbed(YetMoreKeys, def <@/@Spreadkeys(@Parm(YetMoreKeys))
>)@}
   @Send(FunList {@t[@Parm(Fun) @Parm(Args, default <>)@Imbed(Keys,
	def < @key@!@Spreadkeys(@Parm(Keys))>)] @>[@i[Function]]@\@Imbed(MoreKeys,
	def <
@/@t[@Spreadkeys(@Parm(MoreKeys))]>)@Imbed(YetMoreKeys,
	def <
@/@t[@Spreadkeys(@Parm(YetMoreKeys))]>)⎇)@}
   @Findex@Parmquote(Fun)@}
  @Imbed(SuppressKeyIndex, undef <
   @Imbed(Keys, def '@IndexKeys(Fun = @Parmquote(Fun), Keys = @Parmquote(Keys))')@}
   @Imbed(MoreKeys, def '@IndexKeys(Fun = @Parmquote(Fun), Keys = @Parmquote(MoreKeys))')@}
   @Imbed(YetMoreKeys, def '@IndexKeys(Fun = @Parmquote(Fun), Keys = @Parmquote(YetMoreKeys))')>)@}
   @Imbed(Nolabel, undef '@Imbed(Funlabel,
			          def <@Label{@Parm(Funlabel)-fun⎇>,
			          undef <@Label{@Parm(Fun)-fun⎇>)')
   @Begin(Defbody)@Tabclear ")
@Form(Defun1 = "@Begin(Undefbody)@Comment(Tabset?)@}
   @t[@Parm(Fun) @Parm(Args, default <>)@Imbed(Keys, def < @key@!@Spreadkeys(@Parm(Keys))>)] @>[@i[Function]]@\
@Imbed(MoreKeys, def <@/@Spreadkeys(@Parm(MoreKeys))
>)@}
@Imbed(YetMoreKeys, def <@/@Spreadkeys(@Parm(YetMoreKeys))
>)@}
   @Send(FunList {@t[@Parm(Fun) @Parm(Args, default <>)@Imbed(Keys,
	def < @key@!@Spreadkeys(@Parm(Keys))>)] @>[@i[Function]]@\@Imbed(MoreKeys,
	def <
@/@t[@Spreadkeys(@Parm(MoreKeys))]>)@Imbed(YetMoreKeys,
	def <
@/@t[@Spreadkeys(@Parm(YetMoreKeys))]>)⎇)@}
   @Findex@Parmquote(Fun)@}
  @Imbed(SuppressKeyIndex, undef <
   @Imbed(Keys, def '@IndexKeys(Fun = @Parmquote(Fun), Keys = @Parmquote(Keys))')@}
   @Imbed(MoreKeys, def '@IndexKeys(Fun = @Parmquote(Fun), Keys = @Parmquote(MoreKeys))')@}
   @Imbed(YetMoreKeys, def '@IndexKeys(Fun = @Parmquote(Fun), Keys = @Parmquote(YetMoreKeys))')>)@}
   @Imbed(Nolabel, undef '@Imbed(Funlabel,
			          def [@Label{@Parm(Funlabel)-fun⎇],
			          undef [@Label{@Parm(Fun)-fun⎇])')
   @End(Undefbody)")
@Commandstring(Enddefun = "@End(Defbody)@End(Defenvironment)")
@Form(Defmac = "@Begin(Defenvironment)@Comment(Tabset?)@}
   @t[@Parm(Fun) @Parm(Args, default <>)] @>[@i[Macro]]@\@}
   @Send(FunList {@t[@Parm(Fun) @Parm(Args, default <>)] @>[@i[Macro]]@\⎇)@}
   @Mindex@Parmquote(Fun)@}
   @Imbed(Nolabel, undef '@Imbed(Funlabel,
			          def <@Label{@Parm(Funlabel)-mac⎇>,
			          undef <@Label{@Parm(Fun)-mac⎇>)')
   @Begin(Defbody)@Tabclear ")
@Form(Defmac1 = "@Begin(Undefbody)@Comment(Tabset?)@}
   @t[@Parm(Fun) @Parm(Args, default <>)] @>[@i[Macro]]@\@}
   @Send(FunList {@t[@Parm(Fun) @Parm(Args, default <>)] @>[@i[Macro]]@\⎇)@}
   @Mindex@Parmquote(Fun)@}
   @Imbed(Nolabel, undef '@Imbed(Funlabel,
			          def <@Label{@Parm(Funlabel)-mac⎇>,
			          undef <@Label{@Parm(Fun)-mac⎇>)')
   @End(Undefbody)")
@Commandstring(Enddefmac = "@End(Defbody)@End(Defenvironment)")
@Form(Defspec = "@Begin(Defenvironment)@Comment(Tabset?)@}
   @t[@Parm(Fun) @Parm(Args, default <>)] @>[@i[Special form]]@\@}
   @Send(FunList {@t[@Parm(Fun) @Parm(Args, default <>)] @>[@i[Special form]]@\⎇)@}
   @Sindex@Parmquote(Fun)@}
   @Imbed(Nolabel, undef '@Imbed(Funlabel,
			          def <@Label{@Parm(Funlabel)-spec⎇>,
			          undef <@Label{@Parm(Fun)-spec⎇>)')
   @Begin(Defbody)@Tabclear ")
@Form(Defspec1 = "@Begin(Undefbody)@Comment(Tabset?)@}
   @t[@Parm(Fun) @Parm(Args, default <>)] @>[@i[Special form]]@\@}
   @Send(FunList {@t[@Parm(Fun) @Parm(Args, default <>)] @>[@i[Special form]]@\⎇)@}
   @Sindex@Parmquote(Fun)@}
   @Imbed(Nolabel, undef '@Imbed(Funlabel,
			          def <@Label{@Parm(Funlabel)-spec⎇>,
			          undef <@Label{@Parm(Fun)-spec⎇>)')
   @End(Undefbody)")
@Commandstring(Enddefspec = "@End(Defbody)@End(Defenvironment)")

@Textform(Xindent = "@hsp(1.5em)")
@Textform(Def = "@Index@Parmquote(Text)@i@Parmquote(Text)")
@Textform(Index = "@Indexentry{Key {@Parm(Text) 1⎇,
             Entry {@Parm(Text)@Xindent()⎇, Number {@r[@Parmvalue(Page)]⎇⎇@'")
@Form(PossiblyIndexedRef = "@Indexentry{Key {@Parm(K) 1⎇,
             Entry {@Parm(E)@Xindent()⎇, Number {@r[@Parmvalue(Page)]⎇⎇@Parm(E)")
@Textform(Index1 = "@Indexentry{Key {@Parm(Text) 1⎇,
             Entry {@Parm(Text)@Xindent()⎇⎇@'")
@Form(Index2 = "@Index1@Parmquote(P)@Indexentry{Key {@Parm(P) 2 @Parm(S)⎇,
         Entry {@Xindent()@Parm(S)@Xindent()⎇, Number {@Parmvalue(Page)⎇⎇@'")
@Form(Seealso = "@Index1@Parmquote(P)@Indexentry{Key {@Parm(P) 3 @Parm(S)⎇,
         Entry {@Xindent()@Xindent()See also⎇, Number @Parmquote(S)⎇@'")
@Form(Xindex = "@Indexentry{Key {}}}@Parm(X) @Parm(P) 1⎇,
         Entry {@Parm(Q, default <>)@Parm(P)@Parm(R, default <>)@Xindent()⎇,
	 Number {@b[@Parmvalue(Page)]⎇⎇@'")
@Form(Xindexref = "@Indexentry{Key {}}}@Parm(X) @Parm(P) 1⎇,
         Entry {@Parm(Q, default <>)@Parm(P)@Parm(R, default <>)@Xindent()⎇,
	 Number {@i[@Parmvalue(Page)]⎇⎇@'")
@Form(Xindex1 = "@Indexentry{Key {}}}@Parm(X) @Parm(P) 1⎇,
         Entry {@Parm(Q, default <>)@Parm(P)@Parm(R, default <>)@Xindent()⎇⎇@'")
@Form(Xindex2 = "@Xindex1(X @Parmquote(X),
			  P @Parmquote(P)@Imbed(Q, def <, Q @Parmquote(Q)>)@Imbed(R, def <, R @Parmquote(R)>))@}
         @Indexentry{Key {}}}@Parm(X) @Parm(P) 2 @Parm(S)⎇,
		     Entry {@Xindent()@Parm(S)@Xindent()⎇,
		     Number {@b[@Parmvalue(Page)]⎇⎇@'")
@Form(Xindexref2 = "@Xindex1(X @Parmquote(X),
			     P @Parmquote(P)@Imbed(Q, def <, Q @Parmquote(Q)>)@Imbed(R, def <, R @Parmquote(R)>))@}
         @Indexentry{Key {}}}@Parm(X) @Parm(P) 2 @Parm(S)⎇,
		     Entry {@Xindent()@Parm(S)@Xindent()⎇,
		     Number {@i[@Parmvalue(Page)]⎇⎇@'")
@Form(Xseealso = "@Xindex1(X @Parmquote(X),
			   P @Parmquote(P)@Imbed(Q, def <, Q @Parmquote(Q)>)@Imbed(R, def <, R @Parmquote(R)>))@}
         @Indexentry{Key {}}}@Parm(X) @Parm(P) 3 @Parm(S)⎇,
		     Entry {@Xindent()@Xindent()See also⎇,
		     Number @Parmquote(S)⎇⎇@'")
@Textform(Cindex = "@Index@Parmquote(Text)@'")
@Textform(Findex = "@Case(IndexFuns, Yes '@Xindex(X 9, P {@t[@Parm(Text)]⎇)')@'")
@Textform(Findexref = "@Case(IndexFuns, Yes '@Xindexref(X 9, P {@t[@Parm(Text)]⎇)')@'")
@Form(Findex2 = "@Case(IndexFuns, Yes '@Xindex2(X 9, P {@t[@Parm(P)]⎇, S @Parmquote(S))')@'")
@Form(Fseealso = "@Case(IndexFuns, Yes '@Xseealso(X 9, P {@t[@Parm(P)]⎇, S @Parmquote(S))')@'")
@Textform(Mindex = "@Case(IndexFuns, Yes '@Xindex(X 9, P {@t[@Parm(Text)]⎇)')@'")
@Textform(Mindexref = "@Case(IndexFuns, Yes '@Xindexref(X 9, P {@t[@Parm(Text)]⎇)')@'")
@Form(Mindex2 = "@Case(IndexFuns, Yes '@Xindex2(X 9, P {@t[@Parm(P)]⎇, S @Parmquote(S))')@'")
@Form(Mseealso = "@Case(IndexFuns, Yes '@Xseealso(X 9, P {@t[@Parm(P)]⎇, S @Parmquote(S))')@'")
@Textform(Sindex = "@Case(IndexFuns, Yes '@Xindex(X 9, P {@t[@Parm(Text)]⎇)')@'")
@Textform(Sindexref = "@Case(IndexFuns, Yes '@Xindexref(X 9, P {@t[@Parm(Text)]⎇)')@'")
@Form(Sindex2 = "@Case(IndexFuns, Yes '@Xindex2(X 9, P {@t[@Parm(P)]⎇, S @Parmquote(S))')@'")
@Form(Sseealso = "@Case(IndexFuns, Yes '@Xseealso(X 9, P {@t[@Parm(P)]⎇, S @Parmquote(S))')@'")
@Textform(Vindex = "@Xindex(X 2, P {@t[@Parm(Text)]⎇, Q {@f[*]⎇, R{@f[*]⎇)@'")
@Textform(Vxindex = "@Xindex(X 2, P {@t[@Parm(Text)]⎇)@'")
@Textform(Vindexref = "@Xindexref(X 2, P {@t[@Parm(Text)]⎇, Q {@f[*]⎇, R{@f[*]⎇)@'")
@Form(Vindex2 = "@Xindex2(X 2, P {@t[@Parm(P)]⎇, S @Parmquote(S), Q {@f[*]⎇, R{@f[*]⎇)@'")
@Form(Vseealso = "@Xseealso(X 2, P {@t[@Parm(P)]⎇, S @Parmquote(S), Q {@f[*]⎇, R{@f[*]⎇)@'")
@Textform(Conindex = "@Xindex(X 4, P {@t[@Parm(Text)]⎇)@'")
@Textform(Conindexref = "@Xindexref(X 4, P {@t[@Parm(Text)]⎇)@'")
@Form(Conindex2 = "@Xindex2(X 4, P {@t[@Parm(P)]⎇, S @Parmquote(S))@'")
@Form(Conseealso = "@Xseealso(X 4, P {@t[@Parm(P)]⎇, S @Parmquote(S))@'")
@Textform(Kindex = "@Xindex(X 6, P {@t[@Parm(Text)]⎇, Q {@f[:]⎇)@'")
@Textform(Kindexref = "@Xindexref(X 6, P {@t[@Parm(Text)]⎇, Q {@f[:]⎇)@'")
@Form(Kindex2 = "@Xindex2(X 6, P {@t[@Parm(P)]⎇, S @Parmquote(S), Q {@f[:]⎇)@'")
@Form(Kindexref2 = "@Xindexref2(X 6, P {@t[@Parm(K)]⎇, S @Parmquote(S), Q {@f[:]⎇)@'")
@Form(Kseealso = "@Xseealso(X 6, P {@t[@Parm(P)]⎇, S @Parmquote(S), Q {@f[:]⎇)@'")

@Textform(Funref = "@f[@Parm(Text) ]@}
    @r[(page @Pageref(@Parm(Text)-fun))]@Findexref@Parmquote(Text)@;")
@Textform(Funreftab = "@f[@Parm(Text) ]@\@r[(page @Pageref(@Parm(Text)-fun))]@Findexref@Parmquote(Text)@;")
@Form(Xfunref = "@f[@Parm(X) ]@}
    @r[(page @Pageref(@Parm(L)-fun))]@Findexref@Parmquote(X)@;")
@Textform(Macref = "@f[@Parm(Text) ]@}
    @r[(page @Pageref(@Parm(Text)-mac))]@Mindexref@Parmquote(Text)@;")
@Textform(Macreftab = "@f[@Parm(Text) ]@\@r[(page @Pageref(@Parm(Text)-mac))]@Mindexref@Parmquote(Text)@;")
@Form(Xmacref = "@f[@Parm(X) ]@}
    @r[(page @Pageref(@Parm(L)-mac))]@Mindexref@Parmquote(X)@;")
@Textform(Specref = "@f[@Parm(Text) ]@}
    @r[(page @Pageref(@Parm(Text)-spec))]@Sindexref@Parmquote(Text)@;")
@Textform(Specreftab = "@f[@Parm(Text) ]@\@r[(page @Pageref(@Parm(Text)-spec))]@Sindexref@Parmquote(Text)@;")
@Form(XSpecref = "@f[@Parm(X) ]@}
    @r[(page @Pageref(@Parm(L)-spec))]@Sindexref@Parmquote(X)@;")
@Textform(Var = "@f[*@Parm(Text)*]")
@Textform(Varref = "@f[*@Parm(Text)* ]@}
    @r[(page @Pageref(@Parm(Text)-var))]@Vindexref@Parmquote(Text)@;")
@Form(Xvarref = "@f[*@Parm(X)* ]@}
    @r[(page @Pageref(@Parm(L)-var))]@Vindexref@Parmquote(X)@;")
@Textform(Conref = "@f[@Parm(Text) ]@}
    @r[(page @Pageref(@Parm(Text)-con))]@Conindexref@Parmquote(Text)@;")
@Form(Xconref = "@f[@Parm(X) ]@}
    @r[(page @Pageref(@Parm(L)-con))]@Conindexref@Parmquote(X)@;")
@Form(Kwdref = "@f[:@Parm(K) ]@}
    @r[(page @Pageref(@Parm(F)-@Parm(K)-kwd))]@Kindexref2(S {for@f[ @Parm(F)]⎇,
						      K @Parmquote(K))@;")
@Form(SubKwdref = "@f[:@Parm(K)] @}
    @r[(page @Pageref(@Parm(F)-@Parm(O)-@Parm(K)-kwd))]@}
	@Kindexref2(S {for@f[ :@Parm(O) ]option to@f[ @Parm(F)]⎇,
		    K @Parmquote(K))")

@Indexentry(Key {  1⎇, Entry {@IndexHeadings[Index of Concepts]@Blankspace(1)@Begin(IndexEnvironment)⎇)
@Indexentry(Key {}}} ⎇, Entry {@End(IndexEnvironment)⎇)
@Indexentry(Key {}}}2⎇, Entry {@IndexHeadings[Index of Variables]@Blankspace(1)@Begin(IndexEnvironment)⎇)
@Indexentry(Key {}}}2}}}⎇, Entry {@End(IndexEnvironment)⎇)
@Indexentry(Key {}}}4⎇, Entry {@IndexHeadings[Index of Constants]@Blankspace(1)@Begin(IndexEnvironment)⎇)
@Indexentry(Key {}}}4}}}⎇, Entry {@End(IndexEnvironment)⎇)
@Indexentry(Key {}}}6⎇, Entry {@IndexHeadings[Index of Keywords]@Blankspace(1)@Begin(IndexEnvironment)⎇)
@Indexentry(Key {}}}6}}}⎇, Entry {@End(IndexEnvironment)⎇)
@Indexentry(Key {}}}9⎇, Entry {@IndexHeadings[Index of Functions, Macros, and Special Forms]
	@Blankspace(1)@Begin(IndexEnvironment)⎇)
@Indexentry(Key {}}}9}}}⎇, Entry {@End(IndexEnvironment)⎇)

@Textform(AlphabeticalHeadings = "
@Indexentry(Key {}}}@Parm(Text) @t[A   ]⎇, Entry {@ ⎇)
@Indexentry(Key {}}}@Parm(Text) @t[A  ]⎇, Entry {@Hsp(15 pt)@b[A]⎇)
@Indexentry(Key {}}}@Parm(Text) @t[B   ]⎇, Entry {@ ⎇)
@Indexentry(Key {}}}@Parm(Text) @t[B  ]⎇, Entry {@Hsp(15 pt)@b[B]⎇)
@Indexentry(Key {}}}@Parm(Text) @t[C   ]⎇, Entry {@ ⎇)
@Indexentry(Key {}}}@Parm(Text) @t[C  ]⎇, Entry {@Hsp(15 pt)@b[C]⎇)
@Indexentry(Key {}}}@Parm(Text) @t[D   ]⎇, Entry {@ ⎇)
@Indexentry(Key {}}}@Parm(Text) @t[D  ]⎇, Entry {@Hsp(15 pt)@b[D]⎇)
@Indexentry(Key {}}}@Parm(Text) @t[E   ]⎇, Entry {@ ⎇)
@Indexentry(Key {}}}@Parm(Text) @t[E  ]⎇, Entry {@Hsp(15 pt)@b[E]⎇)
@Indexentry(Key {}}}@Parm(Text) @t[F   ]⎇, Entry {@ ⎇)
@Indexentry(Key {}}}@Parm(Text) @t[F  ]⎇, Entry {@Hsp(15 pt)@b[F]⎇)
@Indexentry(Key {}}}@Parm(Text) @t[G   ]⎇, Entry {@ ⎇)
@Indexentry(Key {}}}@Parm(Text) @t[G  ]⎇, Entry {@Hsp(15 pt)@b[G]⎇)
@Indexentry(Key {}}}@Parm(Text) @t[H   ]⎇, Entry {@ ⎇)
@Indexentry(Key {}}}@Parm(Text) @t[H  ]⎇, Entry {@Hsp(15 pt)@b[H]⎇)
@Indexentry(Key {}}}@Parm(Text) @t[I   ]⎇, Entry {@ ⎇)
@Indexentry(Key {}}}@Parm(Text) @t[I  ]⎇, Entry {@Hsp(15 pt)@b[I]⎇)
@Indexentry(Key {}}}@Parm(Text) @t[J   ]⎇, Entry {@ ⎇)
@Indexentry(Key {}}}@Parm(Text) @t[J  ]⎇, Entry {@Hsp(15 pt)@b[J]⎇)
@Indexentry(Key {}}}@Parm(Text) @t[K   ]⎇, Entry {@ ⎇)
@Indexentry(Key {}}}@Parm(Text) @t[K  ]⎇, Entry {@Hsp(15 pt)@b[K]⎇)
@Indexentry(Key {}}}@Parm(Text) @t[L   ]⎇, Entry {@ ⎇)
@Indexentry(Key {}}}@Parm(Text) @t[L  ]⎇, Entry {@Hsp(15 pt)@b[L]⎇)
@Indexentry(Key {}}}@Parm(Text) @t[M   ]⎇, Entry {@ ⎇)
@Indexentry(Key {}}}@Parm(Text) @t[M  ]⎇, Entry {@Hsp(15 pt)@b[M]⎇)
@Indexentry(Key {}}}@Parm(Text) @t[N   ]⎇, Entry {@ ⎇)
@Indexentry(Key {}}}@Parm(Text) @t[N  ]⎇, Entry {@Hsp(15 pt)@b[N]⎇)
@Indexentry(Key {}}}@Parm(Text) @t[O   ]⎇, Entry {@ ⎇)
@Indexentry(Key {}}}@Parm(Text) @t[O  ]⎇, Entry {@Hsp(15 pt)@b[O]⎇)
@Indexentry(Key {}}}@Parm(Text) @t[P   ]⎇, Entry {@ ⎇)
@Indexentry(Key {}}}@Parm(Text) @t[P  ]⎇, Entry {@Hsp(15 pt)@b[P]⎇)
@Indexentry(Key {}}}@Parm(Text) @t[Q   ]⎇, Entry {@ ⎇)
@Indexentry(Key {}}}@Parm(Text) @t[Q  ]⎇, Entry {@Hsp(15 pt)@b[Q]⎇)
@Indexentry(Key {}}}@Parm(Text) @t[R   ]⎇, Entry {@ ⎇)
@Indexentry(Key {}}}@Parm(Text) @t[R  ]⎇, Entry {@Hsp(15 pt)@b[R]⎇)
@Indexentry(Key {}}}@Parm(Text) @t[S   ]⎇, Entry {@ ⎇)
@Indexentry(Key {}}}@Parm(Text) @t[S  ]⎇, Entry {@Hsp(15 pt)@b[S]⎇)
@Indexentry(Key {}}}@Parm(Text) @t[T   ]⎇, Entry {@ ⎇)
@Indexentry(Key {}}}@Parm(Text) @t[T  ]⎇, Entry {@Hsp(15 pt)@b[T]⎇)
@Indexentry(Key {}}}@Parm(Text) @t[U   ]⎇, Entry {@ ⎇)
@Indexentry(Key {}}}@Parm(Text) @t[U  ]⎇, Entry {@Hsp(15 pt)@b[U]⎇)
@Indexentry(Key {}}}@Parm(Text) @t[V   ]⎇, Entry {@ ⎇)
@Indexentry(Key {}}}@Parm(Text) @t[V  ]⎇, Entry {@Hsp(15 pt)@b[V]⎇)
@Indexentry(Key {}}}@Parm(Text) @t[W   ]⎇, Entry {@ ⎇)
@Indexentry(Key {}}}@Parm(Text) @t[W  ]⎇, Entry {@Hsp(15 pt)@b[W]⎇)
@Indexentry(Key {}}}@Parm(Text) @t[X   ]⎇, Entry {@ ⎇)
@Indexentry(Key {}}}@Parm(Text) @t[X  ]⎇, Entry {@Hsp(15 pt)@b[X]⎇)
@Indexentry(Key {}}}@Parm(Text) @t[Y   ]⎇, Entry {@ ⎇)
@Indexentry(Key {}}}@Parm(Text) @t[Y  ]⎇, Entry {@Hsp(15 pt)@b[Y]⎇)
@Indexentry(Key {}}}@Parm(Text) @t[Z   ]⎇, Entry {@ ⎇)
@Indexentry(Key {}}}@Parm(Text) @t[Z  ]⎇, Entry {@Hsp(15 pt)@b[Z]⎇)
")
@AlphabeticalHeadings(2)
@AlphabeticalHeadings(4)
@AlphabeticalHeadings(6)
@AlphabeticalHeadings(9)

@Define(FunListEnvironment = DefEnvironment, Font Smallbodyfont)
@Send(FunList {@IndexHeadings(Common Lisp Summary)@Begin(FunListEnvironment)⎇)
@SendEnd(FunList {@r[(End of @clisp summary.)]@End(FunListEnvironment)⎇)

@Textform(IndexCleanup = " ")